#ifndef _INTERFACE
#define _INTERFACE

#include<stdlib.h>
#include<stdio.h>
#include"Espace.h"
#include"Visiteur.h"
#include"Jeu.h"
#include <SDL/SDL_ttf.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <GL/gl.h>
#include <GL/glu.h>

#define FPS 50

/**
*\file Interface.h
*\brief Fichier d'en-tête Interface.h. 
*
*Ce fichier d'en-tête gère tous ce qui concernent l'espace dans lequel évoluera le personnage
*
*\author Martin GONZALES
*\version version finale
*/

/**
*\fn void dessinerCube(vecteur *v,int valeur);
*\brief Dessine un cube à l'emplacement v selon sa valeur (cube si 1, pas de cube sinon)
*\param [in] *v : pointeur sur les coordonnées du cube
*\param [in] valeur : valeur du cube dans l'espace
*\pre v doit avoir une valeur cohérente par rapport à l'espace.
*\post un cube est créé dans l'espace
*\warning C'est une fonction pour l'affichage openGL.
*/
void dessinerCube(vecteur *v,int valeur);

/**
*\fn void affEspace3D(jeu * laby);
*\brief Affiche le jeu
*\param [in] *laby : pointeur sur le jeu à afficher
*\pre Le jeu doit être initialisé.
*\warning Cette fonction concerne l'affichage openGL.
*/
void affEspace3D(jeu * laby);

/**
*\fn void affEspaceContinu(jeu * laby, visiteur * ancienJoueur);
*\brief Permet le mouvement fluide du joueur
*\param [in] *laby : pointeur sur le jeu
*\param [out] *ancienJoueur : pointeur sur l'ancienne position du joueur. Position de départ.
*\pre Le jeu et l'ancienne position doivent être inialisée
*\warning C'est une fonction pour l'affichage openGL.
*/
void affEspaceContinu(jeu * laby, visiteur * ancienJoueur);

/**
*\fn void affEspace(espace esp);
*\brief Affiche l'espace dans le terminal sous forme de tableau
*\param [in] esp : espace à afficher
*\pre L'espace doit être initialisé
*\warning C'est une fonction pour l'affichage texte
*/
void affEspace(espace esp);


/**
*\fn void affJeu(jeu laby);
*\brief Affiche le jeu dans le terminal, c'est-à-dire l'espace et les informations relatives au joueur
*\param [in] laby : jeu à afficher
*\pre Le jeu doit être initialisé
*\warning C'est une fonction pour un affichage texte.
*/
void affJeu(jeu laby);




#endif
